package com.travelsky.flash.util;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletContext;

import org.springframework.stereotype.Component;
import org.springframework.web.context.ServletContextAware;

/**
 * @Description 服务器路径
 * @author syuan
 * @date 2015年3月20日  下午6:13:56
 * Company: TravelSky
 */
@Component
public class ServerPath implements ServletContextAware {
	
	/**
	 * @Fields pathMap 路径Map
	 * @author syuan
	 * @date 2015年4月2日  下午7:19:44
	 */
	private static Map<String, String> pathMap = new HashMap<String, String>();
	
	/** 
	 * @Fields SERVER_PROJECT_PATH 项目根路径
	 * @author syuan
	 * @date 2015年4月2日  上午11:18:16
	 */
	public static final String SERVER_PROJECT_PATH = "serverProjectPath";
	
	/**
	 * @Fields SERVER_ROOT_PATH 服务器根路径
	 * @author syuan
	 * @date 2015年3月23日  上午9:47:54
	 */
	public static final String SERVER_ROOT_PATH = "serverRootPath";
	
	/**
	 * @Fields SERVER_UPLOAD_PATH 上传文件路径
	 * @author syuan
	 * @date 2015年3月23日  上午9:47:08
	 */
	public static final String SERVER_UPLOAD_PATH = "serverUploadPath";

	@Override
	public void setServletContext(ServletContext servletContext) {
		String path = servletContext.getRealPath(File.separator);
		//eg: .../falcon-controller/
		ServerPath.putPath(SERVER_PROJECT_PATH, path);
		if(path.lastIndexOf(File.separator) == path.length()-1) {
			path = path.substring(0,path.length()-1);
		}
		int index = path.lastIndexOf(File.separator);
		if(index > 0) {
			path = path.substring(0, index);
		}
		ServerPath.putPath(SERVER_ROOT_PATH, path);
		// 服务器相对地址
		// ServerPath.putPath(SERVER_UPLOAD_PATH, path + File.separator + "files" + File.separator);
		// 上传绝对地址
		ServerPath.putPath(SERVER_UPLOAD_PATH, "/opt/app/flash-deploy-upload/");
		
	}
	
	/**
	 * @Description 存路径
	 * @param pathKey 路径key
	 * @param path
	 * @author syuan
	 * @date 2015年4月2日  下午7:23:26
	 */
	public static void putPath(String pathKey, String path) {
		pathMap.put(pathKey, path);
	}
	
	/**
	 * @Description 取路径
	 * @param pathKey 路径key
	 * @return
	 * @author syuan
	 * @date 2015年4月2日  下午7:23:36
	 */
	public static String getPath(String pathKey) {
		return pathMap.get(pathKey);
	}

}
